home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 June / PCWorld_2007-06_cd.bin / zabezpeceni / perfectprivacy / ppriv.exe / {app} / pprivacy.chm / expcol.js < prev    next >
Text File  |  2004-12-03  |  5KB  |  220 lines

  1.  
  2. var L_COLLAPSE_TEXT="Hide All";
  3. var L_EXPAND_TEXT="Show All";
  4.  
  5. function ExpandAll()
  6. {
  7.     // Expand all 
  8.     var iSpan
  9.     var iSpanSource
  10.     var oSpan
  11.     var sCaption
  12.     var sAction
  13.     var sImage
  14.     
  15.     // Determine the action, and the picture to replace
  16.     sCaption=document.all("ExpandAll").innerHTML;
  17.     if (sCaption==L_EXPAND_TEXT)
  18.         {
  19.         sAction="expanded";
  20.         sImage="/images/bluedrop.gif"
  21.         document.all("picHeader").src="/images/collapsetri.gif";
  22.         document.all("ExpandAll").innerHTML=L_COLLAPSE_TEXT;
  23.         }
  24.     else
  25.         {
  26.         sAction="collapsed";
  27.         sImage="/images/blueup.gif"
  28.         document.all("picHeader").src="/images/expandtri.gif";
  29.         document.all("ExpandAll").innerHTML=L_EXPAND_TEXT;
  30.         }
  31.  
  32.     // Execute the action for all expand SPANs    
  33.     for (iSpan=0; iSpan < document.all.tags("DIV").length; iSpan++)
  34.         {    
  35.             oSpan=document.all.tags("DIV").item(iSpan);
  36.             iSpanSource=oSpan.sourceIndex;
  37.             if (oSpan.id=="ExpCol")
  38.             {
  39.                 document.all.tags("DIV").item(iSpan).className=sAction;
  40.                 if(document.all(iSpanSource-1).tagName=="IMG" && document.all(iSpanSource-2).tagName!="IMG")
  41.                 {
  42.                     document.all(iSpanSource-1).src=sImage;
  43.                 }
  44.                 else if(document.all(iSpanSource-2).tagName=="IMG")
  45.                 {
  46.                     document.all(iSpanSource-2).src=sImage
  47.                 }
  48.                  
  49.             }
  50.             
  51.             // Handle the Q tag added late for Loc
  52.             if (document.all(iSpanSource-1).tagName=="Q")
  53.             {
  54.                 document.all(iSpanSource-2).src=sImage;
  55.             }
  56.             
  57.             
  58.         }
  59.  
  60.  
  61.     // Change the text and the picture of the main caller
  62.     document.all("ExpandAll").className="DropDown";
  63.  
  64.     // Now we do the inline defs
  65.     var cLinks = document.all.tags("A");
  66.     var iNumLinks = cLinks.length;
  67.  
  68.       for (var i=0;i<iNumLinks;i++)
  69.       {
  70.         cLink=document.all.tags("A").item(i);
  71.         
  72.         switch (sAction)
  73.         {
  74.             case 'expanded':
  75.                 if (cLink.className=="glossary" && cLink.getAttribute("State")!="On")
  76.                 {
  77.                     cLinks[i].click();
  78.                 }
  79.                 else if (cLink.className=="HidePopUp")
  80.                 {
  81.                     cLinks[i].click();
  82.                 }
  83.                 
  84.                 break;
  85.             case 'collapsed':
  86.                 if (cLink.className=="glossary" && cLink.getAttribute("State")=="On")
  87.                 {
  88.                     cLinks[i].click();
  89.                 }
  90.                 else if (cLink.className=="HidePopUp")
  91.                 {
  92.                     cLinks[i].click();
  93.                 }
  94.                 break;
  95.         }
  96.       }
  97.  
  98.  
  99.     
  100.     
  101. }
  102.  
  103. function Outline2()
  104. {
  105.  
  106.     window.event.returnValue=0    
  107.  
  108.     //Expand or collapse if a list item is clicked.
  109.     var open = event.srcElement;
  110.  
  111.     //Verify that the tag which was clicked was either the 
  112.     //trigger tag or nested within a trigger tag.
  113.     var el = checkParent(open,"A");
  114.     if(null != el)
  115.     {    
  116.         var incr=0;
  117.         var elmPos = 0;
  118.         var parentSpan;
  119.         var fBreak
  120.  
  121.         //Get the position of the element which was clicked
  122.         elemPos = window.event.srcElement.sourceIndex;
  123.  
  124.         //Search for a SPAN tag
  125.         for (parentSpan = window.event.srcElement.parentElement;
  126.             parentSpan!=null;
  127.             parentSpan = parentSpan.parentElement) 
  128.         {
  129.             //test if already at a span tag 
  130.             if (parentSpan.tagName=="DIV") 
  131.             {
  132.                 //alert("Parent Element is a SPAN");
  133.                 incr=1;
  134.                 break;
  135.             }
  136.             
  137.             //Test if the tag clicked was in a body tag or in any of the possible kinds of lists
  138.             //we perform this test because nested lists require special handling
  139.             if (parentSpan.tagName=="BODY" || parentSpan.tagName=="UL" || parentSpan.tagName=="OL"|| parentSpan.tagName=="P") 
  140.             {
  141.                 //Determine where the span to be expanded is.  
  142.                 for (incr=1; (elemPos+incr) < document.all.length; incr++)
  143.                 {    
  144.                     //verify we are at an expandable Div tag
  145.                     if(document.all(elemPos+incr).tagName=="DIV" && 
  146.                     (document.all(elemPos+incr).className=="expanded" ||
  147.                      document.all(elemPos+incr).className=="collapsed"))
  148.                     {
  149.                         fBreak=1;
  150.                         break;
  151.                     }
  152.                     //If the next tag following the list item (li) is another 
  153.                     //list item(li) return in order to prevent accidentally opening
  154.                     //the next span in the list
  155.                     else if(document.all(elemPos+incr).tagName=="LI")
  156.                     {
  157.                         return;
  158.                     }
  159.                 }
  160.             }
  161.             //determine if we need to break out of the while loop (kind of a kludge since theres no goto in javascript)
  162.             if(fBreak==1)
  163.             {
  164.                 break;
  165.             }
  166.         }
  167.  
  168.     }
  169.     else
  170.     {
  171.         //Alert("Return!");
  172.         return;
  173.     }
  174.  
  175.     //Now that we've identified the span, expand or collapse it
  176.     if(document.all(elemPos+incr).className=="collapsed")
  177.     {
  178.         
  179.         document.all(elemPos+incr).className="expanded"
  180.         document.all(elemPos+1).src="/images/bluedrop.gif";
  181.         if(open.tagName=="IMG"){open.src="/images/bluedrop.gif";}
  182.         if(open.tagName=="B")
  183.             {
  184.             if(open.parentElement.all.tags("IMG").length != 0)
  185.                 {open.parentElement.all.tags("IMG").item(0).src="/images/bluedrop.gif";}
  186.             }
  187.     }
  188.     else if(document.all(elemPos+incr).className=="expanded")
  189.     {
  190.         document.all(elemPos+incr).className="collapsed"
  191.         document.all(elemPos+1).src="/images/blueup.gif";
  192.         if(open.tagName=="IMG"){open.src="/images/blueup.gif";}
  193.         if(open.tagName=="B")
  194.             {
  195.             if(open.parentElement.all.tags("IMG").length != 0)
  196.                 {open.parentElement.all.tags("IMG").item(0).src="/images/blueup.gif";}
  197.             }
  198.     }
  199.     else
  200.     {
  201.         return;
  202.     }
  203.     event.cancelBubble = true;
  204. //    open.scrollIntoView(true);
  205. }
  206.  
  207. function checkParent(src,dest)
  208. {
  209.     //Search for a specific parent of the current element.
  210.     while(src !=null)
  211.     {
  212.         if(src.tagName == dest)
  213.         {
  214.             return src;
  215.         }
  216.         src = src.parentElement;
  217.     }
  218.     return null;
  219. }
  220.